package com.liming.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @author liming
 * @date 2025/4/14
 */
@Getter
@AllArgsConstructor
public enum RefundUserReceivedAccountEnum {

    // 取当前退款单的退款入账方，有以下几种情况：
    //1）退回银行卡：{银行名称}{卡类型}{卡尾号}，
    //2）退回支付用户零钱:支付用户零钱，
    //3）退还商户:商户基本账户商户结算银行账户，
    //4）退回支付用户零钱通:支付用户零钱通，
    //5）退回支付用户银行电子账户:支付用户银行电子账户，
    //6）退回支付用户零花钱:支付用户零花钱，
    //7）退回用户经营账户:用户经营账户，
    //8）退回支付用户来华零钱包:支付用户来华零钱包，
    //9）退回企业支付商户:企业支付商户。

    BANK_CARD(1, "BANK_CARD", "退回银行卡"),
    USER_WALLET(2, "USER_WALLET", "退回支付用户零钱"),
    MERCHANT_ACCOUNT(3, "MERCHANT_ACCOUNT", "退还商户"),
    USER_WALLET_TONG(4, "USER_WALLET_TONG", "退回支付用户零钱通"),
    USER_ELECTRONIC_ACCOUNT(5, "USER_ELECTRONIC_ACCOUNT", "退回支付用户银行电子账户"),
    USER_POCKET_MONEY(6, "USER_POCKET_MONEY", "退回支付用户零花钱"),
    USER_BUSINESS_ACCOUNT(7, "USER_BUSINESS_ACCOUNT", "退回用户经营账户"),
    USER_WALLET_FOREIGN(8, "USER_WALLET_FOREIGN", "退回支付用户来华零钱包"),
    ENTERPRISE_MERCHANT(9, "ENTERPRISE_MERCHANT", "退回企业支付商户");

    private final Integer code;
    private final String name;
    private final String desc;

    public static Integer getCodeByName(String name) {
        for (RefundUserReceivedAccountEnum value : values()) {
            if (value.getName().equals(name)) {
                return value.getCode();
            }
        }
        return null;
    }
}
